const path = require('path')
const fs = require('fs')

/*
    io 操作什么时候用异步, 什么时候用同步

    [什么时候用同步api]
    1. 工具类的程序, 类似于 webpack, gulp 只执行一次, 执行完就退出的程序
    2. 服务器启动前的操作, 比如加载配置项
*/
// 读取文件
// fs.readFile('./test.txt', (err, data) => {
//     if (!err) {
//         console.log(data.toString())
//     }
// })

// let d = fs.readFileSync('./test.txt')
// console.log('readFileSync: ', d.toString())

// 写入文件

// let str = '123 - abc'
// fs.writeFileSync('./test.txt', str, { encoding: 'utf8' })

// fs.writeFile(
//     './test.txt',
//     str,
//     {
//         encoding: 'utf8'
//     },
//     (err) => {
//         if (!err) {
//             console.log('写入成功')
//         }
//     }
// )

// 流操作

// let rs = fs.createReadStream('./test.txt')
// let ws = fs.createWriteStream('./test-copy.txt')

// rs.pipe(ws)

// let chunks = []
// rs.on('data', (chunk) => {
//     chunks.push(chunk)
// })
// rs.on('end', () => {
//     console.log(chunks)
//     let b = Buffer.from(...chunks)
//     console.log(b.toString())
// })

// 文件是否存在

// let readFileSync = (url) => new Promise((resolve, reject) => {
//     fs.readFile(url, (err, data) => {
//         if (err) {
//             reject(err)
//         } else {
//             resolve(data)
//         }
//     })
// })

// ;(async () => {
//     console.log(1)
//     let d = await readFileSync('./test-copy.txt')
//     console.log(d.toString())
// })();

// 删除文件

// fs.unlink('./test-copy.txt', (err) => {
//     if (!err) {
//         console.log('文件删除成功')
//     } else {
//         console.log(err)
//     }
// })
// fs.unlinkSync('./test copy.txt')

// 文件目录

// let rootUrl = './public'
// fs.readdir(rootUrl, (err, files) => {
//     if (!err) {
//         // rootUrl
//         for (let filename of files) {

//             let dirUrl = path.resolve(`${rootUrl}/${filename}`)
//             fs.stat(dirUrl, (err, stats) => {
//                 if (!err) {
//                     console.log(filename, stats.isDirectory())
//                     // console.log(stats)
//                 }
//             })
//             console.log(dirUrl)
//         }
//     }
// })

// let url = path.join(__dirname, '../../public/dir/微信图片_20201128154847 - 副本 (2).jpg')
// console.log(url)

// let stats = fs.statSync(url)
// console.log(stats.isDirectory())

// path.resolve
// path.join()
